package chapter07

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test08_Map
 * Package: chapter07
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-06-27
 *          Time: 21:24
 */

object Test08_Map {
  def main(args: Array[String]): Unit = {
    //1.不可变Map
    //创建 伴生对象创建 "a"->12 表示对应的k-v
    val map1: Map[String, Int] = Map("a" -> 12, "b" -> 23, "hello" -> 4)
    println(map1)
    println(map1.getClass) //class scala.collection.immutable.Map$Map3
    // Map3表示三个元素

    //遍历元素
    map1.foreach(println)
    println("-----------------------")
    // (String,Int) 元组类型
    map1.foreach((kv:(String,Int)) => println(kv))

    println("--------------------------")

    //访问元素
    //取Map中所有的key
    for (key <- map1.keys){
      println(s"$key -----> ${map1.get(key)}")
    }
    //a -----> Some(12) 后面没有跟get 输出就是Some(12)
    //b -----> Some(23)
    //hello -----> Some(4)
    //若是访问 其中某一个key的val直接 get方法
    println(map1.get("a").get) //12
    println(map1.get("c")) //None 调用了get就是空指针异常
    println(map1.getOrElse("c",0))
    //推荐使用这样的方式访问 要是没有对应的值 返回默认值0
    println(map1("a"))  //简单的直接访问 没有直接抛出异常

  }
}
